
package edu.tfg.dao;

import edu.tfg.model.Usuario;
import edu.tfg.util.HibernateUtil;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author Juarez
 */
public class UsuarioDAO {
    
       private Session sessao;
    private Transaction trans;
    private List <Usuario> lista;
    
    public void salvar(Usuario u){
        try{
        sessao =  HibernateUtil.getSessionFactory().openSession();
        trans = sessao.beginTransaction();
      
        sessao.save(u);
        trans.commit();
        }catch(Exception e){
            e.printStackTrace();
        }finally{
               sessao.close();
        }
   }
    
    public void removeUsuario(Usuario u){
       try{
        sessao =  HibernateUtil.getSessionFactory().openSession();
        trans = sessao.beginTransaction();
        
        sessao.delete(u);
        trans.commit();
       }catch(Exception e){
           e.printStackTrace();
       }finally{
           sessao.close();
       }      
      
    }
    
   public List<Usuario> listarUsuario() {
	Criteria lista = sessao.createCriteria(Usuario.class);
	return lista.list();
   }
   
   public void alterarUsuario(Usuario usuario) {
	this.sessao.update(usuario);		
   }
   
   public Usuario pesquisarUsuario(String string) {		
	Query consultaNome = this.sessao.createQuery("from Cliente c where c.nome like :nome");
	consultaNome.setString("nome", "%" + string + "%");
	return (Usuario) consultaNome.uniqueResult();		
    }



    
}
